package com.dave.gd.common.util;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.springframework.util.SerializationUtils;

/**
 * .
 * 
 * @author zhenglincheng
 * @version Revision 1.0.0
 * @see:
 * @创建日期：2014年11月5日
 * @功能说明：数组,集合,对象转byte[][]
 */
public class BinaryUtil {
    
    /**
     * .
     * String[]转byte[][]
     * 
     * @param strings
     * @return
     * @author zhenglincheng
     *         2014年11月5日 zhenglincheng
     */
    public static byte[][] StringToBinary(final String group, final String... strings) {
        final List<byte[]> byteValues = new ArrayList<byte[]>();
        for (final String string : strings) {
            byteValues.add((group + string).getBytes());
        }
        return byteValues.toArray(new byte[][] {});
    }
    
    /**
     * .
     * Serializable[]转byte[][]
     * 
     * @param strings
     * @return
     * @author zhenglincheng
     *         2014年11月5日 zhenglincheng
     */
    public static byte[][] ObjectToBinary(final String group, final Object... strings) {
        final List<byte[]> byteValues = new ArrayList<byte[]>();
        for (final Object string : strings) {
            byteValues.add(SerializationUtils.serialize(group + string));
        }
        return byteValues.toArray(new byte[][] {});
    }
    
    /**
     * .
     * Collection<Seriablize>转byte[][]
     * 
     * @param col
     * @return
     * @author Administrator
     *         2014年11月10日 Administrator
     */
    public static byte[][] ObjectToBinary(final Collection<?> col) {
        final List<byte[]> byteValues = new ArrayList<byte[]>();
        for (final Object obj : col) {
            byteValues.add(SerializationUtils.serialize((Serializable) obj));
        }
        return byteValues.toArray(new byte[][] {});
    }
}
